package Gather.Advanced.Map集合;

import java.util.*;

public class 键对多项值 {
    public static void main(String[] args) {
        //定义集合
        HashMap<String,ArrayList>hash=new HashMap<>();

        //定义江苏省集合
        ArrayList<String> Jiangsu=new ArrayList<>();
        Jiangsu.add("南京市");
        Jiangsu.add("扬州市");
        Jiangsu.add("常州市");
        Jiangsu.add("无锡市");
        //定义湖北省集合
        ArrayList<String> Hubei=new ArrayList<>();
        Hubei.add("武汉市");
        Hubei.add("孝感市");
        Hubei.add("宜昌市");
        Hubei.add("鄂州市");
        //定义河北省集合
        ArrayList<String> Hebei=new ArrayList<>();
        Hebei.add("石家庄市");
        Hebei.add("唐山市");
        Hebei.add("那台市");
        Hebei.add("张家口");
        //将所有元素添加到集合当中
        hash.put("江苏省",Jiangsu);
        hash.put("湖北省",Hubei);
        hash.put("河北省",Hebei);
        //遍历所有集合
        hash.forEach(( s,  arrayList)->System.out.println(s+"="+arrayList));

        //entrySet提取值与键
        Set<Map.Entry<String, ArrayList>> entries=hash.entrySet();

        //遍历键与值
        for (Map.Entry<String, ArrayList> entry : entries) {
            //获取键
            String key=entry.getKey();
            //获取值
            ArrayList<String> value=entry.getValue();
            //对值定义拼接格式
            StringJoiner sj=new StringJoiner(",","","");
            //将需要拼接的数据添加到sj中
            for (String city : value) {
                sj.add(city);
            }
            //打印最终格式
            System.out.println(key+"="+sj);
        }
    }
}
